﻿#ifndef __GAMESCENE_SCENE_H__
#define __GAMESCENE_SCENE_H__
#include "cocostudio/CocoStudio.h"
#include "ui/CocosGUI.h"
#include "cocos2d.h"
#include <string>
class Hero;
class PropTip;
class GameScene : public cocos2d::Layer
{
public:
	GameScene():
		coin(0),
		pwCount(0)
	{

	}
    static cocos2d::Scene* createScene();
    virtual bool init();
	void onEnter();
	void onExit();
	void initHero();
	void setHeroPos(cocos2d::Vec2 pos) {
		heroPos = pos;
	}
	void update(float dt);
	void createEnemyUpdate(float dt);//创建病毒调度器
	void delayInitHeroUpdate(float dt);//延迟初始化主机调度器
	void delayBackStartSenceUpdate(float dt);//延迟返回开始场景调度器
	void enemySlowUpdate(float dt);
	void enemyNormalUpdate(float dt);
	void enemyFastUpdate(float dt);//活化病毒调度器 
	void collisionHeroAndEenmy();//检测主机与敌机的碰撞
	void initGameBg();//加载游戏背景
	void initSpriteFrameCache();//缓存plist文件
	void initCSBFile();//加载csb文件
	void initSettlementNode();//加载结算节点
	void initLevel();//初始化关卡节点 
	//void initGameLevel();//初始化游戏关卡
	void collisionBulletAndEenmy();//英雄子弹与病毒的碰撞检测
	void collisionHeroAndProp();//主机与道具的碰撞检测
	void checkCurrentEnemyCount();
	void addCoin(int coin, bool isGameCoin);//增加金币
	std::string coinToString(int coin);//将金币转换为.k的形式
	void addCoinAction(cocos2d::Vec2 enemyPos, cocos2d::Size enemySize, int coinNum, 
		int level, bool isGameCoin = true, bool isPerformWonders = false);
	//void addCoinAction(cocos2d::Vec2 pos, int coinNum, int coinCount);
	void pauseGame();//暂停游戏
	void resumeGame();//继续游戏
	void gameOver();//游戏结束
	void changeLevel();//切换关卡
	void propEff(PropTip* propTip);//道具效果
	CREATE_FUNC(GameScene);
private:
	Hero* hero;
	int totalCoin;
	int coin;
	int pwCount;
	int productEnemyCount;//生产病毒数量
	float totalEnemyCount;//每一关生产的病毒数量
	int currentEnemyCount;
	cocos2d::Node* rootNode;
	cocos2d::Node* uiNode;
	cocos2d::Node* levelNode;
	std::vector<cocos2d::ui::TextAtlas*>levelNums;
	std::vector<int> enemyLevels;
	cocos2d::Node* settlementNode;
	cocos2d::Sprite* bg;
	//cocos2d::Node* coinNode;
	cocos2d::Size size;
	//cocos2d::Sprite* coinSP;
	cocos2d::ui::TextAtlas* progress_num;
	cocos2d::ui::Text* coin_num;
	cocos2d::ui::Text* topCoinNum;
	cocos2d::ui::LoadingBar* progress;
	cocos2d::Vec2 heroPos;
};

#endif // __GAMESCENE_SCENE_H__
